/*

#include "m_any.h"

template<class T>
T any_cast(const m_any<T>& operand)
{
	if (typeid(T) != operand.type())
		throw "bad_any_cast";
	return operand.content_->GetHolder();
}

template<class T>
T any_cast(m_any<T>& operand)
{
	if (typeid(T) != operand.type())
		throw "bad_any_cast";
	return operand.content_->GetHolder();
}

template<class T>
T any_cast(m_any<T>&& operand)
{
	if (typeid(T) != operand.type())
		throw "bad_any_cast";
	return operand.content_->GetHolder();
}

template<class T>
const T* any_cast(const m_any<T>* operand) noexcept
{
	return &operand->content_->GetHolder();
}

template<class T>
T* any_cast(m_any<T>* operand) noexcept
{
	return &operand->content_->GetHolder();
}

template<class T>
void swap(m_any<T>& lhs, m_any<T>& rhs) noexcept
{
	lhs.swap(rhs);
	return;
}

/*
template<class T>
std::ostream& operator<<(std::ostream& out, const m_any<T> & rhs)
{
	out << rhs.content_->GetHolder();
	return out;
}
*/
